package com.atguig.e_lambda;

import java.util.Date;
/*
    Lambda表达式的简化格式 :
        1. 当重写方法的方法体有且仅有一句,那么可以省略包裹方法体的大括号 和 语句结尾的分号 如果有return ,return也可以省略
                条件 : 要省略必须一起省略
        2. 重写方法的形参类型都可以省略 , 形参名是可以改的 [方法体内的形参名也要改]
 */
public class Demo1 {
    public static void main(String[] args) {
        //匿名内部类
        InterB ib = new InterB() {
            @Override
            public void show(String name, int age) {
                System.out.println("name : " + name + " , age = " + age);
            }
        };

        ib.show("张三",18);

        System.out.println("--------------------------");

        //Lambda表达式
        InterB ib1 = (n,a) -> System.out.println("name : " + n + " , age = " + a);

        ib1.show("李四",20);
        System.out.println("--------------------------");

        useInterB((name,age) -> System.out.println("name : " + name + " , age = " + age), "王五", 30);
    }

    public static void useInterB(InterB ib,String name,int age){
        ib.show(name,age);
    }
}

@FunctionalInterface
interface InterB{
    public abstract void show(String name,int age);
}

